package com.j180.intercepter;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class OneInterceper implements HandlerInterceptor {


    /**
     * preHandle： 标目方法执行前执行(主要使用这个方法)
     *
     * @param request  请求对象
     * @param response 响应对象
     * @param handler  拦截的目标对象
     * @return    boolean : 该拦截器是否放行  true: 放行  false:不放行
     * @throws Exception
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

        System.out.println("进入拦截器11111111");

        return true;
    }

    /**
     * 在目标方法执行后执行
     * @param request
     * @param response
     * @param handler
     * @param modelAndView  方法执行完毕以后返回的modelAndview
     * @throws Exception
     */
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

        System.out.println("在目标方法执行后执行====>>>");
    }

    /**
     * 在视图被渲染成功之后执行（ 主要是回收资源的）
     * @param request
     * @param response
     * @param handler
     * @param ex
     * @throws Exception
     */
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

        System.out.println("视图被成功渲染后执行====>>>>>");
    }
}
